<!DOCTYPE HTML>
<html lang="en">
<head>
  <meta name="copyright" content=
  "Copyright (c) IBM Corporation and others 2000, 2011. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page.">
  <meta charset="utf-8"/>
  <link rel="STYLESHEET" href="../book.css" type="text/css">
  <title>Builds</title>
  <script src="PLUGINS_ROOT/org.eclipse.help/livehelp.js"></script>
</head>
<body>
  <h1 class="Head">Builds</h1>
  <p class="Head">A <i>build</i> is a process that derives new resources from existing ones, updates existing
  resources, or both.</p>
  <p class="Head">In the Workbench, different <i>builders</i> are invoked for different types of projects. For example,
  when a build is triggered for a Java project, a Java builder converts each Java source file (.java files) into one or
  more executable class files (.class files). Builders usually enforce the constraints of some domain. For example, a
  Web link builder could update links to files whose name/location changes.</p>
  <p>There are two kinds of builds:</p>
  <ul>
    <li>
      <p>An <i>incremental build</i> leverages a previously built state and applies the transforms of the configured
      builders to the resources that have changed since the previous state was computed (that is, since the last
      build).</p>
    </li>
    <li>
      <p>A clean build discards any problems and previously built state. The next build after a clean will transform
      all resources according to the domain rules of the configured builders.</p>
    </li>
  </ul>
  <p>Incremental and clean builds can be done over a specific set of projects or the workspace as a whole. Specific
  files and folders cannot be built. There are two ways that builds can be performed:</p>
  <ul>
    <li>Automatic builds are performed as resources are saved. Automatic builds are always incremental and always
    operate over the entire workspace. You can configure your preferences ( <a class="command-link" href=
    'javascript:executeCommand("org.eclipse.ui.window.preferences(preferencePageId=org.eclipse.ui.preferencePages.Workspace)")'>
    <img src="PLUGINS_ROOT/org.eclipse.help/command_link.svg" alt="command link"> <b>General &gt; Workspace</b></a>) to
    perform builds automatically on resource modification.</li>
    <li>Manual builds are initiated when you explicitly select a menu item or press the equivalent shortcut key. Manual
    builds can be either clean or incremental and can operate over collections of projects or the entire
    workspace.</li>
  </ul>
  <h3 class="related">Related Concepts</h3><a href="concepts-exttools.htm">External tools</a>
  <h3 class="related">Related Tasks</h3><a href="../tasks/tasks-73.htm">Building resources</a><br>
  <a href="../tasks/tasks-75.htm">Performing builds manually</a><br>
  <a href="../tasks/tasks-16.htm">Performing builds automatically</a><br>
  <a href="../tasks/tasks-17.htm">Saving resources automatically before a manual build</a><br>
  <a href="../tasks/tasks-14.htm">Changing build order</a>
</body>
</html>
